import { getInfo, setInfo } from '@/utils/storage'
export default {
  namespaced: true, // 开启命名空间，避免不同模块中同名的 mutations、actions、getters 产生冲突。
  //   state 是一个函数，返回一个对象（避免模块被复用时报错，和组件的 data 设计思路一致）。
  state () {
    return {
      // 个人权证相关
      userInfo: getInfo()

    }
  },
  //   定义同步修改状态的方法，是 Vuex 中唯一允许直接修改 state 的地方。
  mutations: {
    // 所有mutations的第一个参数都是state
    setUserInfo (state, obj) {
      state.userInfo = obj
      setInfo(obj)
    }
  },
  //   定义处理异步操作的方法（如 API 请求），最终通过提交 mutations 来修改 state。
  actions: {
    logout (context) {
      // 个人信息要重置
      context.commit('setUserInfo', {})

      // 购物车信息要重置,这里需要跨模块调用mutation，，，cart/setCartList
      context.commit('cart/setCartList', [], { root: true })
    }
  },
  //   定义基于 state 的计算属性（类似组件的 computed），用于对状态进行加工处理后再使用。
  getters: {}
}
